/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.isd.global.modelo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;

/**
 *
 * @author ctrosch
 */
@Entity
@Table(name = "USR_TVCONF",schema = "dbo")
public class Parametro implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "USR_TVCONF_ID", nullable = false, length = 2)
    private Integer id;

    //Email recepcion de consultas 1
    @Column(name = "USR_TVCONF_EMARC1", length = 60)
    private String emailRecepcionConsulta;
    
    @Column(name = "USR_TVCONF_SMHOST", length = 45)
    private String smtpHost;
    @Column(name = "USR_TVCONF_SMSTLS", length =45)
    private String smtpStarttls;
    @Column(name = "USR_TVCONF_SMPUER", length = 4)
    private String smtpPuerto;
    @Column(name = "USR_TVCONF_SMNCUE", length = 45)
    private String smtpNombreCuenta;
    @Column(name = "USR_TVCONF_SMUSUA", length = 45)
    private String smtpUsuario;
    @Column(name = "USR_TVCONF_SMPASS", length = 40)
    private String  smtpPassword;
    @Column(name = "USR_TVCONF_SMAUTH", length = 5)
    private String  smtpAuth;
    
    @Column(name = "USR_TVCONF_SMDIEN", length = 60)
    private String  smtpDireccionEnvio;
    @Column(name = "USR_TVCONF_SMNOEN", length = 60)
    private String  smtpNombreEnvio;
    @Column(name = "USR_TVCONF_SMSMTP", length = 10)
    private String  smtpTipo;
    
    @Lob
    @Column(name = "USR_TVCONF_PLANOT", length = 2147483647)
    private String plantillaNotificaciones;
    
    @Lob
    @Column(name = "USR_TVCONF_PATHUP", length = 2147483647)
    private String pathUpload;
    
    @Column(name = "USR_TVCONF_VTCMIT")
    private int  cantidadMaximaItem;

    @Column(name = "USR_TVCONF_SISMNT", length=1)
    private String  sistemaEnMantenimiento;

    @Column(name = "USR_TVCONF_SISMEN", length=255)
    private String  mensajeMantenimiento;

    @Column(name = "USR_TVCONF_ENVEML")
    private char  enviaNotificaciones;

    @Column(name = "USR_TVCONF_PATHHM", length = 200)
    private String  pathImagenesHome;
    

    @Column(name = "USR_TVCONF_PATHPP", length = 200)
    private String  pathImagenesPrincipal;

    @Column(name = "USR_TVCONF_PATHPR", length = 200)
    private String  pathImagenesProductos;

    @Column(name = "USR_TVCONF_PATHIM", length = 200)
    private String pathImagenesDefault;

    @Column(name = "USR_TVCONF_IMGUNH", length = 200)
    private String  imagenUnicaHome;

    @Column(name = "USR_TVCONF_PATHEM", length = 200)
    private String  linkRevistaEM;

    @Column(name = "USR_TVCONF_FCHIPL")
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date fechaInicioPool;

    @Column(name = "USR_TVCONF_FCHFPL")
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date fechaFinPool;

    @Column(name = "USR_TVCONF_CANTPL")
    private int cantDisponiblePool;

    @Column(name = "USR_TVCONF_CNTPOL")
    private int cantTotalPool;

    @Column(name = "USR_TVCONF_POOLAC", length=1)
    private String poolActivo;

    @Column(name = "USR_TVCONF_IMGIPL", length = 200)
    private String pathImagenPoolActivo;

    @Column(name = "USR_TVCONF_IMGFPL", length = 200)
    private String pathImagenPoolFinalizado;

    @Column(name = "USR_TVCONF_IMGIPP", length = 200)
    private String pathImagenPoolActivoPrincipal;
    
    @Column(name = "USR_TVCONF_TPOOL", length = 40)
    private String tituloPool;
    
    @Column(name = "USR_TVCONF_MPOOLP", length = 30)
    private String muestraPoolEnPrincipal;

    @Column(name = "USR_TVCONF_NAPOOL", length = 200)
    private String numeroActualPool;

    //Correos electrónicos para recibir notificaciones de compra en pool
    @Column(name = "USR_TVCONF_CEPOOL", length = 255)
    private String correoElectronicoPool;


    //Correos electrónicos para recibir notificaciones de compra en promocion
    @Column(name = "USR_TVCONF_CEPROM", length = 255)
    private String correoElectronicoPromocion;

    @Column(name = "USR_TVCONF_PIMGPI", length = 200)
    private String pathImagenPromocionInicio;

    @Column(name = "USR_TVCONF_PIMGPF", length = 200)
    private String pathImagenPromocionFin;

    @Column(name = "USR_TVCONF_MBNCAT", length=1)
    private String muestraBannerEnCatalogo;

    @Column(name = "USR_TVCONF_PATHIB", length = 200)
    private String pathImagenBannerCatalogo;

    @Column(name = "USR_TVCONF_ENPRBA", length = 1)
    private String modoPrueba;

    @Column(name = "USR_TVCONF_DSCHAT", length = 1)
    private String disponibilidadChat;

    @Column(name = "USR_TVCONF_RCNOMP", length = 255)
    private String recepcionNotificacionModoPrueba;

    @OneToMany(mappedBy = "parametro", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    private List<HomeImagenes> imagenesHome;

    @OneToMany(mappedBy = "parametro", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    private List<ItemDescarga> linkDescarga;
    
    @OneToMany(mappedBy = "parametro", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    private List<ItemDescargaVI> linkDescargaVI;

    @OneToMany(mappedBy = "parametro", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    private List<ItemBanner> itemsBanner;

    @OneToMany(mappedBy = "parametro", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    private List<ItemBanner> itemsVideos;


    /*
     * Atributo que define que tipo de home mostrar.
     *
     * A = Slide de imágenes
     * B = Imágen fija
     */

    @Column(name = "USR_TVCONF_TIPHOM")
    private String tipoHome;


    public Parametro() {
    }

    public Parametro(Integer id) {
        this.id = id;
    }

    public int getCantidadMaximaItem() {
        return cantidadMaximaItem;
    }

    public void setCantidadMaximaItem(int cantidadMaximaItem) {
        this.cantidadMaximaItem = cantidadMaximaItem;
    }

    public List<ItemDescarga> getLinkDescarga() {
        return linkDescarga;
    }

    public void setLinkDescarga(List<ItemDescarga> linkDescarga) {
        this.linkDescarga = linkDescarga;
    }

    public String getEmailRecepcionConsulta() {
        return emailRecepcionConsulta;
    }

    public void setEmailRecepcionConsulta(String emailRecepcionConsulta) {
        this.emailRecepcionConsulta = emailRecepcionConsulta;
    }
    
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getSmtpAuth() {
        return smtpAuth;
    }

    public void setSmtpAuth(String smtpAuth) {
        this.smtpAuth = smtpAuth;
    }

    public String getSmtpHost() {
        return smtpHost;
    }

    public void setSmtpHost(String smtpHost) {
        this.smtpHost = smtpHost;
    }

    public String getSmtpNombreCuenta() {
        return smtpNombreCuenta;
    }

    public void setSmtpNombreCuenta(String smtpNombreCuenta) {
        this.smtpNombreCuenta = smtpNombreCuenta;
    }

    public String getSmtpPassword() {
        return smtpPassword;
    }

    public void setSmtpPassword(String smtpPassword) {
        this.smtpPassword = smtpPassword;
    }

    public String getSmtpPuerto() {
        return smtpPuerto;
    }

    public void setSmtpPuerto(String smtpPuerto) {
        this.smtpPuerto = smtpPuerto;
    }

    public String getSmtpStarttls() {
        return smtpStarttls;
    }

    public void setSmtpStarttls(String smtpStarttls) {
        this.smtpStarttls = smtpStarttls;
    }

    public String getSmtpUsuario() {
        return smtpUsuario;
    }

    public void setSmtpUsuario(String smtpUsuario) {
        this.smtpUsuario = smtpUsuario;
    }

    public String getMensajeMantenimiento() {
        return mensajeMantenimiento;
    }

    public void setMensajeMantenimiento(String mensajeMantenimiento) {
        this.mensajeMantenimiento = mensajeMantenimiento;
    }

    public String getSistemaEnMantenimiento() {
        if(sistemaEnMantenimiento==null){

            sistemaEnMantenimiento = "S";
        }

        return sistemaEnMantenimiento;
    }

    public void setSistemaEnMantenimiento(String sistemaEnMantenimiento) {
        this.sistemaEnMantenimiento = sistemaEnMantenimiento;
    }

    public char getEnviaNotificaciones() {
        return enviaNotificaciones;
    }

    public void setEnviaNotificaciones(char enviaNotificaciones) {
        this.enviaNotificaciones = enviaNotificaciones;
    }

    public String getTipoHome() {
        return tipoHome;
    }

    public void setTipoHome(String tipoHome) {
        this.tipoHome = tipoHome;
    }

    public String getPathImagenesHome() {
        return pathImagenesHome;
    }
    

    public void setPathImagenesHome(String pathImagenesHome) {
        this.pathImagenesHome = pathImagenesHome;
    }    
    
    public String getPathImagenesPrincipal() {
        return pathImagenesPrincipal;
    }

    public void setPathImagenesPrincipal(String pathImagenesPrincipal) {
        this.pathImagenesPrincipal = pathImagenesPrincipal;
    }

    public String getPathImagenesProductos() {
        return pathImagenesProductos;
    }

    public void setPathImagenesProductos(String pathImagenesProductos) {
        this.pathImagenesProductos = pathImagenesProductos;
    }

    public String getImagenUnicaHome() {
        return imagenUnicaHome;
    }

    public void setImagenUnicaHome(String imagenUnicaHome) {
        this.imagenUnicaHome = imagenUnicaHome;
    }

    public String getLinkRevistaEM() {
        return linkRevistaEM;
    }

    public void setLinkRevistaEM(String linkRevistaEM) {
        this.linkRevistaEM = linkRevistaEM;
    }

    public List<HomeImagenes> getImagenesHome() {
        return imagenesHome;
    }

    public void setImagenesHome(List<HomeImagenes> imagenesHome) {
        this.imagenesHome = imagenesHome;
    }

    public int getCantDisponiblePool() {
        return cantDisponiblePool;
    }

    public void setCantDisponiblePool(int cantDisponiblePool) {
        this.cantDisponiblePool = cantDisponiblePool;
    }

    public Date getFechaFinPool() {
        return fechaFinPool;
    }    

    public void setFechaFinPool(Date fechaFinPool) {
        this.fechaFinPool = fechaFinPool;
    }

    public String getPoolActivo() {
        return poolActivo;
    }

    public void setPoolActivo(String poolActivo) {
        this.poolActivo = poolActivo;
    }
    
    public String getPathImagenPoolActivo() {
        return pathImagenPoolActivo;
    }

    public void setPathImagenPoolActivo(String pathImagenPoolActivo) {
        this.pathImagenPoolActivo = pathImagenPoolActivo;
    }

    public String getPathImagenPoolFinalizado() {
        return pathImagenPoolFinalizado;
    }

    public void setPathImagenPoolFinalizado(String pathImagenPoolFinalizado) {
        this.pathImagenPoolFinalizado = pathImagenPoolFinalizado;
    }

    public String getTituloPool() {
        return tituloPool;
    }

    public void setTituloPool(String tituloPool) {
        this.tituloPool = tituloPool;
    }

    public String getMuestraPoolEnPrincipal() {
        return muestraPoolEnPrincipal;
    }

    public void setMuestraPoolEnPrincipal(String muestraPoolEnPrincipal) {
        this.muestraPoolEnPrincipal = muestraPoolEnPrincipal;
    }

    public String getNumeroActualPool() {
        return numeroActualPool;
    }

    public void setNumeroActualPool(String numeroActualPool) {
        this.numeroActualPool = numeroActualPool;
    }

    public String getPathImagenPoolActivoPrincipal() {
        return pathImagenPoolActivoPrincipal;
    }

    public void setPathImagenPoolActivoPrincipal(String pathImagenPoolActivoPrincipal) {
        this.pathImagenPoolActivoPrincipal = pathImagenPoolActivoPrincipal;
    }

    public String getCorreoElectronicoPool() {
        return correoElectronicoPool;
    }

    public void setCorreoElectronicoPool(String correoElectronicoPool) {
        this.correoElectronicoPool = correoElectronicoPool;
    }

    public int getCantTotalPool() {
        return cantTotalPool;
    }

    public void setCantTotalPool(int cantTotalPool) {
        this.cantTotalPool = cantTotalPool;
    }

    public Date getFechaInicioPool() {
        return fechaInicioPool;
    }

    public void setFechaInicioPool(Date fechaInicioPool) {
        this.fechaInicioPool = fechaInicioPool;
    }

    public String getMuestraBannerEnCatalogo() {
        return muestraBannerEnCatalogo;
    }

    public void setMuestraBannerEnCatalogo(String muestraBannerEnCatalogo) {
        this.muestraBannerEnCatalogo = muestraBannerEnCatalogo;
    }

    public String getPathImagenBannerCatalogo() {
        return pathImagenBannerCatalogo;
    }

    public void setPathImagenBannerCatalogo(String pathImagenBannerCatalogo) {
        this.pathImagenBannerCatalogo = pathImagenBannerCatalogo;
    }

    public List<ItemBanner> getItemsBanner() {
        return itemsBanner;
    }

    public void setItemsBanner(List<ItemBanner> itemsBanner) {
        this.itemsBanner = itemsBanner;
    }

    public String getCorreoElectronicoPromocion() {
        return correoElectronicoPromocion;
    }

    public void setCorreoElectronicoPromocion(String correoElectronicoPromocion) {
        this.correoElectronicoPromocion = correoElectronicoPromocion;
    }

    public String getPathImagenPromocionFin() {
        return pathImagenPromocionFin;
    }

    public void setPathImagenPromocionFin(String pathImagenPromocionFin) {
        this.pathImagenPromocionFin = pathImagenPromocionFin;
    }

    public String getPathImagenPromocionInicio() {
        return pathImagenPromocionInicio;
    }

    public void setPathImagenPromocionInicio(String pathImagenPromocionInicio) {
        this.pathImagenPromocionInicio = pathImagenPromocionInicio;
    }

    public String getModoPrueba() {
        return modoPrueba;
    }

    public void setModoPrueba(String modoPrueba) {
        this.modoPrueba = modoPrueba;
    }

    public String getRecepcionNotificacionModoPrueba() {
        return recepcionNotificacionModoPrueba;
    }

    public void setRecepcionNotificacionModoPrueba(String recepcionNotificacionModoPrueba) {
        this.recepcionNotificacionModoPrueba = recepcionNotificacionModoPrueba;
    }

    public String getDisponibilidadChat() {
        return disponibilidadChat;
    }

    public void setDisponibilidadChat(String disponibilidadChat) {
        this.disponibilidadChat = disponibilidadChat;
    }

    public List<ItemBanner> getItemsVideos() {
        return itemsVideos;
    }

    public void setItemsVideos(List<ItemBanner> itemsVideos) {
        this.itemsVideos = itemsVideos;
    }

    public String getSmtpDireccionEnvio() {
        return smtpDireccionEnvio;
    }

    public void setSmtpDireccionEnvio(String smtpDireccionEnvio) {
        this.smtpDireccionEnvio = smtpDireccionEnvio;
    }

    public String getSmtpNombreEnvio() {
        return smtpNombreEnvio;
    }

    public void setSmtpNombreEnvio(String smtpNombreEnvio) {
        this.smtpNombreEnvio = smtpNombreEnvio;
    }

    public String getSmtpTipo() {
        return smtpTipo;
    }

    public void setSmtpTipo(String smtpTipo) {
        this.smtpTipo = smtpTipo;
    }

    public String getPlantillaNotificaciones() {
        return plantillaNotificaciones;
    }

    public void setPlantillaNotificaciones(String plantillaNotificaciones) {
        this.plantillaNotificaciones = plantillaNotificaciones;
    }
    
    public String getPathImagenesDefault() {
        return pathImagenesDefault;
    }

    public void setPathImagenesDefault(String pathImagenesDefault) {
        this.pathImagenesDefault = pathImagenesDefault;
    }

    public String getPathUpload() {
        return pathUpload;
    }

    public void setPathUpload(String pathUpload) {
        this.pathUpload = pathUpload;
    }
    
    public List<ItemDescargaVI> getLinkDescargaVI() {
        return linkDescargaVI;
    }

    public void setLinkDescargaVI(List<ItemDescargaVI> linkDescargaVI) {
        this.linkDescargaVI = linkDescargaVI;
    }
        
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Parametro other = (Parametro) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 17 * hash + (this.id != null ? this.id.hashCode() : 0);
        return hash;
    }


    @Override
    public String toString() {
        return "tv.global.modelo.Parametro[usrprmttvid=" + id + "]";
    }

}
